#include"clude.h"`
class function {
public:
	//�޲����Ĺ��캯��
	function() {

		cout << "(Ĭ��)�޲����Ĺ��캯��" << endl;
	}
	//�в����Ĺ��캯��
	function(int r) {
		mr = r;
		cout << "�в����Ĺ��캯��" << endl;
	}
	//�������캯��
	function(const function& p) {

		mr = p.mr;
		cout << "�������캯��" << endl;
	}
	//�����������ͷ��ڴ�֮ǰ
	~function() {
		cout << "��������" << endl;
	}
private:
	int mr;
};

//1.ʹ��һ���Ѿ�����������ϵĶ�������ʼ��һ���¶���
void test01() {
	function p1(20);
	function p2(p1);
}

//2.ֵ���ݵ�ʱ����ÿ���������
void work01(function p4) {
}
void test02() {
	function p3;
	work01(p3);   //ʵ�ʣ�function p4 = p3 ��������ʽ����
}

//3.��ֵ��ʽ���ؾֲ�����
function work02() {
	function p0;
	cout << "p0�ĵ�ַ" << (int*)&p0 << endl;
	return p0;
}
void test03() {

	function p = work02();    //������п�����p0�������ֵ���ÿ������������ڿ�����һ��p00�ڴ��ݸ�p��
	cout << "p�ĵ�ַ" << (int*)&p << endl;
}

int main() {

	test01();
	cout << endl;
	test02();
	cout << endl;
	test03();

	return 0;
}